! function(t, e) {
  "object" == typeof exports && "undefined" != typeof module ? module.exports = e() : "function" == typeof define &&
  define.amd ? define(e) : (t = "undefined" != typeof globalThis ? globalThis : t || self).dayjs = e()
}(this, (function() {
  "use strict";
  var t = 1e3,
    e = 6e4,
    n = 36e5,
    r = "millisecond",
    i = "second",
    s = "minute",
    u = "hour",
    a = "day",
    o = "week",
    f = "month",
    h = "quarter",
    c = "year",
    d = "date",
    $ = "Invalid Date",
    l = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,
    y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,
    M = {
      name: "en",
      weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
      months: "January_February_March_April_May_June_July_August_September_October_November_December"
        .split("_")
    },
    m = function(t, e, n) {
      var r = String(t);
      return !r || r.length >= e ? t : "" + Array(e + 1 - r.length).join(n) + t
    },
    g = {
      s: m,
      z: function(t) {
        var e = -t.utcOffset(),
          n = Math.abs(e),
          r = Math.floor(n / 60),
          i = n % 60;
        return (e <= 0 ? "+" : "-") + m(r, 2, "0") + ":" + m(i, 2, "0")
      },
      m: function t(e, n) {
        if (e.date() < n.date()) return -t(n, e);
        var r = 12 * (n.year() - e.year()) + (n.month() - e.month()),
          i = e.clone().add(r, f),
          s = n - i < 0,
          u = e.clone().add(r + (s ? -1 : 1), f);
        return +(-(r + (n - i) / (s ? i - u : u - i)) || 0)
      },
      a: function(t) {
        return t < 0 ? Math.ceil(t) || 0 : Math.floor(t)
      },
      p: function(t) {
        return {
          M: f,
          y: c,
          w: o,
          d: a,
          D: d,
          h: u,
          m: s,
          s: i,
          ms: r,
          Q: h
        } [t] || String(t || "").toLowerCase().replace(/s$/, "")
      },
      u: function(t) {
        return void 0 === t
      }
    },
    D = "en",
    v = {};
  v[D] = M;
  var p = function(t) {
      return t instanceof _
    },
    S = function(t, e, n) {
      var r;
      if (!t) return D;
      if ("string" == typeof t) v[t] && (r = t), e && (v[t] = e, r = t);
      else {
        var i = t.name;
        v[i] = t, r = i
      }
      return !n && r && (D = r), r || !n && D
    },
    w = function(t, e) {
      if (p(t)) return t.clone();
      var n = "object" == typeof e ? e : {};
      return n.date = t, n.args = arguments, new _(n)
    },
    O = g;
  O.l = S, O.i = p, O.w = function(t, e) {
    return w(t, {
      locale: e.$L,
      utc: e.$u,
      x: e.$x,
      $offset: e.$offset
    })
  };
  var _ = function() {
      function M(t) {
        this.$L = S(t.locale, null, !0), this.parse(t)
      }
      var m = M.prototype;
      return m.parse = function(t) {
        this.$d = function(t) {
          var e = t.date,
            n = t.utc;
          if (null === e) return new Date(NaN);
          if (O.u(e)) return new Date;
          if (e instanceof Date) return new Date(e);
          if ("string" == typeof e && !/Z$/i.test(e)) {
            var r = e.match(l);
            if (r) {
              var i = r[2] - 1 || 0,
                s = (r[7] || "0").substring(0, 3);
              return n ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[
                6] || 0, s)) : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[
                6] || 0, s)
            }
          }
          return new Date(e)
        }(t), this.$x = t.x || {}, this.init()
      }, m.init = function() {
        var t = this.$d;
        this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t
          .getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(),
          this.$ms = t.getMilliseconds()
      }, m.$utils = function() {
        return O
      }, m.isValid = function() {
        return !(this.$d.toString() === $)
      }, m.isSame = function(t, e) {
        var n = w(t);
        return this.startOf(e) <= n && n <= this.endOf(e)
      }, m.isAfter = function(t, e) {
        return w(t) < this.startOf(e)
      }, m.isBefore = function(t, e) {
        return this.endOf(e) < w(t)
      }, m.$g = function(t, e, n) {
        return O.u(t) ? this[e] : this.set(n, t)
      }, m.unix = function() {
        return Math.floor(this.valueOf() / 1e3)
      }, m.valueOf = function() {
        return this.$d.getTime()
      }, m.startOf = function(t, e) {
        var n = this,
          r = !!O.u(e) || e,
          h = O.p(t),
          $ = function(t, e) {
            var i = O.w(n.$u ? Date.UTC(n.$y, e, t) : new Date(n.$y, e, t), n);
            return r ? i : i.endOf(a)
          },
          l = function(t, e) {
            return O.w(n.toDate()[t].apply(n.toDate("s"), (r ? [0, 0, 0, 0] : [23, 59, 59, 999])
              .slice(e)), n)
          },
          y = this.$W,
          M = this.$M,
          m = this.$D,
          g = "set" + (this.$u ? "UTC" : "");
        switch (h) {
          case c:
            return r ? $(1, 0) : $(31, 11);
          case f:
            return r ? $(1, M) : $(0, M + 1);
          case o:
            var D = this.$locale().weekStart || 0,
              v = (y < D ? y + 7 : y) - D;
            return $(r ? m - v : m + (6 - v), M);
          case a:
          case d:
            return l(g + "Hours", 0);
          case u:
            return l(g + "Minutes", 1);
          case s:
            return l(g + "Seconds", 2);
          case i:
            return l(g + "Milliseconds", 3);
          default:
            return this.clone()
        }
      }, m.endOf = function(t) {
        return this.startOf(t, !1)
      }, m.$set = function(t, e) {
        var n, o = O.p(t),
          h = "set" + (this.$u ? "UTC" : ""),
          $ = (n = {}, n[a] = h + "Date", n[d] = h + "Date", n[f] = h + "Month", n[c] = h +
            "FullYear", n[u] = h + "Hours", n[s] = h + "Minutes", n[i] = h + "Seconds", n[r] =
            h + "Milliseconds", n)[o],
          l = o === a ? this.$D + (e - this.$W) : e;
        if (o === f || o === c) {
          var y = this.clone().set(d, 1);
          y.$d[$](l), y.init(), this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d
        } else $ && this.$d[$](l);
        return this.init(), this
      }, m.set = function(t, e) {
        return this.clone().$set(t, e)
      }, m.get = function(t) {
        return this[O.p(t)]()
      }, m.add = function(r, h) {
        var d, $ = this;
        r = Number(r);
        var l = O.p(h),
          y = function(t) {
            var e = w($);
            return O.w(e.date(e.date() + Math.round(t * r)), $)
          };
        if (l === f) return this.set(f, this.$M + r);
        if (l === c) return this.set(c, this.$y + r);
        if (l === a) return y(1);
        if (l === o) return y(7);
        var M = (d = {}, d[s] = e, d[u] = n, d[i] = t, d)[l] || 1,
          m = this.$d.getTime() + r * M;
        return O.w(m, this)
      }, m.subtract = function(t, e) {
        return this.add(-1 * t, e)
      }, m.format = function(t) {
        var e = this,
          n = this.$locale();
        if (!this.isValid()) return n.invalidDate || $;
        var r = t || "YYYY-MM-DDTHH:mm:ssZ",
          i = O.z(this),
          s = this.$H,
          u = this.$m,
          a = this.$M,
          o = n.weekdays,
          f = n.months,
          h = function(t, n, i, s) {
            return t && (t[n] || t(e, r)) || i[n].substr(0, s)
          },
          c = function(t) {
            return O.s(s % 12 || 12, t, "0")
          },
          d = n.meridiem || function(t, e, n) {
            var r = t < 12 ? "AM" : "PM";
            return n ? r.toLowerCase() : r
          },
          l = {
            YY: String(this.$y).slice(-2),
            YYYY: this.$y,
            M: a + 1,
            MM: O.s(a + 1, 2, "0"),
            MMM: h(n.monthsShort, a, f, 3),
            MMMM: h(f, a),
            D: this.$D,
            DD: O.s(this.$D, 2, "0"),
            d: String(this.$W),
            dd: h(n.weekdaysMin, this.$W, o, 2),
            ddd: h(n.weekdaysShort, this.$W, o, 3),
            dddd: o[this.$W],
            H: String(s),
            HH: O.s(s, 2, "0"),
            h: c(1),
            hh: c(2),
            a: d(s, u, !0),
            A: d(s, u, !1),
            m: String(u),
            mm: O.s(u, 2, "0"),
            s: String(this.$s),
            ss: O.s(this.$s, 2, "0"),
            SSS: O.s(this.$ms, 3, "0"),
            Z: i
          };
        return r.replace(y, (function(t, e) {
          return e || l[t] || i.replace(":", "")
        }))
      }, m.utcOffset = function() {
        return 15 * -Math.round(this.$d.getTimezoneOffset() / 15)
      }, m.diff = function(r, d, $) {
        var l, y = O.p(d),
          M = w(r),
          m = (M.utcOffset() - this.utcOffset()) * e,
          g = this - M,
          D = O.m(this, M);
        return D = (l = {}, l[c] = D / 12, l[f] = D, l[h] = D / 3, l[o] = (g - m) / 6048e5, l[a] = (
          g - m) / 864e5, l[u] = g / n, l[s] = g / e, l[i] = g / t, l)[y] || g, $ ? D : O.a(D)
      }, m.daysInMonth = function() {
        return this.endOf(f).$D
      }, m.$locale = function() {
        return v[this.$L]
      }, m.locale = function(t, e) {
        if (!t) return this.$L;
        var n = this.clone(),
          r = S(t, e, !0);
        return r && (n.$L = r), n
      }, m.clone = function() {
        return O.w(this.$d, this)
      }, m.toDate = function() {
        return new Date(this.valueOf())
      }, m.toJSON = function() {
        return this.isValid() ? this.toISOString() : null
      }, m.toISOString = function() {
        return this.$d.toISOString()
      }, m.toString = function() {
        return this.$d.toUTCString()
      }, M
    }(),
    b = _.prototype;
  return w.prototype = b, [
    ["$ms", r],
    ["$s", i],
    ["$m", s],
    ["$H", u],
    ["$W", a],
    ["$M", f],
    ["$y", c],
    ["$D", d]
  ].forEach((function(t) {
    b[t[1]] = function(e) {
      return this.$g(e, t[0], t[1])
    }
  })), w.extend = function(t, e) {
    return t.$i || (t(e, _, w), t.$i = !0), w
  }, w.locale = S, w.isDayjs = p, w.unix = function(t) {
    return w(1e3 * t)
  }, w.en = v[D], w.Ls = v, w.p = {}, w
}));
